In wireless transmission, the received data contains a large amount of error codes as the channel is relatively poor. Therefore, transmission signals must be encoded and error corrected. The purpose of channel encoding is to resist against various noises and interferences during the transmission process, by adding redundant information manually, a system is provided with a capability of automatic error correction, so as to guarantee the reliability of digital transmission. With the development of the wireless digital communication technology and the appearance of high-rate strong-abruptness services, people propose more demanding requirements on the error correction encoding technology.
At first, error code correction is mainly concentrated in linear block codes based on algebraic theory, and then Hamming codes, RS codes, cyclic codes or the like. However, effect in solving practical problems is limited. Register is introduced into the encoding process of convolutional codes appearing in the fifties, and correlation between code elements is added, so that a higher encoding gain than that of block codes is obtained under a same complexity. There are three grid termination policies for convolutional codes:
Direct truncation: no any information about the final state of grid is provided to the decoder;
Zero termination: tail bit 0 is added behind the information bit and then encoding is carried out, in order to ensure that the grid returns to a specific state 0;
Tail biting: it has a special way—zero termination, the main feature of which is that no tail bit needs to be added. Tail biting means that: before one code block is encoded, the initial state of the convolutional code encoder is set as the final several bits of the code block, for cyclic convolutional codes, after the encoding process ends, the encoder returns to the initial state, so the decoding grid may be regarded as a circle, initialization may be realized in the case of decoding at any position of the circle, therefore, the corresponding decoding may be regarded as spinning cyclic decoding.
For convolutional encoding, there are many corresponding decoding algorithms, but among these algorithms, the most effective and most practical decoding algorithm is maximum likelihood decoding, i.e., Viterbi decoding algorithm. In order to improve the code rate of convolutional codes and meet the application of high-speed systems such as Long Term Evolution (LTE), tail biting convolutional encoder is employed in most solutions, the corresponding convolutional decoder needs larger storage space, and the complexity of calculation is also higher.